// 节流 用于跳转，t秒内只执行一次
export const throttle = (fn, wait) => {
	var timer = null;
	return function() {
		var context = this;
		var args = arguments;
		if (!timer) {
			timer = setTimeout(function() {
				fn.apply(context, args);
				timer = null;
			}, wait)
		}
	}
}
/**
 *
 * @param fn {Function}   实际要执行的函数
 * @param delay {Number}  延迟时间，也就是阈值，单位是毫秒（ms）
 *
 * @return {Function}     返回一个“去弹跳”了的函数
 */
export const Debounce = (fn, delay = 500) => {

	// 定时器，用来 setTimeout
	var timer

	// 返回一个函数，这个函数会在一个时间区间结束后的 delay 毫秒时执行 fn 函数
	return function() {

		// 保存函数调用时的上下文和参数，传递给 fn
		var context = this
		var args = arguments

		// 每次这个返回的函数被调用，就清除定时器，以保证不执行 fn
		clearTimeout(timer)

		// 当返回的函数被最后一次调用后（也就是用户停止了某个连续的操作），
		// 再过 delay 毫秒就执行 fn
		timer = setTimeout(function() {
			fn.apply(context, args)
		}, delay)
	}
}

// Toast提示
export const showToast = (title, icon = 'none', duration = 1500) => {
	uni.showToast({
		title,
		icon,
		duration
	})
}


//校验邮箱
export const checkEmail = (value = '') => {
	const emailReg = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
	console.log("value: ", value, emailReg.test(value));
	return emailReg.test(value)
}